package view;

import java.awt.Dialog;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import model.Dependente;

import javax.swing.JLabel;
import javax.swing.JTextField;

import com.toedter.calendar.JDateChooser;

import dao.DAOFactory;
import dao.IDependenteDAO;

public class DependenteView extends AbstractDetailView<Dependente> {

	private Dependente dep;
	private IDependenteDAO daoDependente = DAOFactory.getDependenteDAO();

	
	public DependenteView(Dialog principal, String caption, boolean modal, int id_pessoa, int id_dependente) {
		super(principal, caption, modal);
		btnCancelar.setLocation(260, 128);
		btnSalvar.setLocation(10, 128);
		
		this.setBounds(0, 0, 390, 200);
		
		JLabel lblNome = new JLabel("Nome :");
		lblNome.setBounds(10, 23, 46, 14);
		getContentPane().add(lblNome);
		
		JLabel lblNewLabel = new JLabel("Data Nascimento :");
		lblNewLabel.setBounds(10, 58, 97, 14);
		getContentPane().add(lblNewLabel);
		
		JLabel lblCertidoNascimento = new JLabel("Certid\u00E3o Nascimento :");
		lblCertidoNascimento.setBounds(10, 93, 113, 14);
		getContentPane().add(lblCertidoNascimento);
		
		txtNome = new JTextField();
		txtNome.setBounds(135, 20, 217, 20);
		getContentPane().add(txtNome);
		txtNome.setColumns(10);
		
		txtCertidao = new JTextField();
		txtCertidao.setBounds(133, 90, 219, 20);
		getContentPane().add(txtCertidao);
		txtCertidao.setColumns(10);
		
		dtNascimento = new JDateChooser();
		dtNascimento.setBounds(135, 52, 217, 20);
		getContentPane().add(dtNascimento);
		
		pnlDtCadastro.setVisible(false);
		pnlDtAlteracao.setVisible(false);
		pnlUsuarioAlteracao.setVisible(false);

		if (id_dependente == -1){
			dep = new Dependente();
		}
		else{
			dep = daoDependente.findById(id_dependente);
			populateViewData();
		}
		dep.setPessoa_id_pessoa(id_pessoa);
	}

	private static final long serialVersionUID = -977736398842498459L;
	private JTextField txtNome;
	private JTextField txtCertidao;
	private JDateChooser dtNascimento;

	@Override
	public ActionListener getActionBtnSalvar() {
		return new ActionListener(){
			public void actionPerformed(ActionEvent arg0){
				populateRegisterData();
				daoDependente.insertUpdate(dep);
				closeWindow();
			}
		};
	}

	@Override
	public ActionListener getActionBtnCancelar() {
		return new ActionListener(){
			public void actionPerformed(ActionEvent arg0){
				closeWindow();
			}
		};
	}

	@Override
	public void populateViewData() {
		txtNome.setText(dep.getNome());
		txtCertidao.setText(dep.getCertidao_nascimento());
		dtNascimento.setDate(dep.getDt_nascimento());
	}

	@Override
	public void populateRegisterData() {
		dep.setNome(txtNome.getText());
		dep.setCertidao_nascimento(txtCertidao.getText());
		dep.setDt_nascimento(dtNascimento.getDate());
	}
}
